Supporting Keyboard and Mouse Over Embedded DisplayPort Without Using a Universal Serial Bus

ABSTRACT

A human interface sink device may be selectively enabled with at least one of an embedded keyboard, embedded mouse, touch-based keyboard, a touch-based mouse function in addition to a multi-touch function.

BACKGROUND

Recently developed display interface schemes, such as DisplayPort® (DP)display interface protocol or standard (see, e.g., DisplayPort® version1.2) (December 2009)), replace older standards, such as the videographics array and digital video interface and rely on packetized datatransmission similar to other data communication protocols, such asInternet, Universal Serial Bus, and Peripheral Component InterfaceExpress. For example, DP supports both external (e.g., box-to-box) andinternal (e.g., laptop display panel), display connections, and, unlikedigital video interface and low voltage differential signalingstandards, where differential pairs transmit pixel data and a clocksignal, the DP protocol is based on transmission of small data packetswith an embedded clock. The use of data packets allows interfacestandards, such as DP, to be extensible by permitting additionalfeatures to be added without significant changes to the interfaceitself.

Embedded DisplayPort (eDP) is intended to refer to a companion standard(see, e.g., embedded DisplayPort, version 1.3) (February 2011)) to theDP standard that provides a standard display panel interface forinternal connections (e.g., between a graphics processor and a notebookdisplay panel) and replaces the low voltage differential signalingstandard.

BRIEF DESCRIPTION OF THE DRAWINGS

Some embodiments are described with respect to the following figures:

FIG. 1 is a schematic depiction of a first display interface systemaccording to one embodiment;

FIG. 2 is a schematic depiction of a second display interface systemaccording to one embodiment;

FIG. 3 is a flow chart for one embodiment;

FIG. 4 is a system depiction for one embodiment; and

FIG. 5 is a front elevational view of one embodiment.

DETAILED DESCRIPTION

The phrase “human interface device” (HID) as used herein describesdevices to control the operation of computer systems. See “Device ClassDefinition for Human Interface Devices (HID)”, Firmware specification,version 1.11, published Jun. 27, 2001, hereinafter the “HID 1.11”specification.

The phrase “touch data” is used synonymously with the phrase“multi-touch data” and, as used herein, refers to data that describesone or more locations where a contact with a sensitive surface hasoccurred.

A “touch sink” or “touch sink device” are used synonymously with theterm “sink” and “sink device” and refer to a sink device configured tosupport the DisplayPort (DP) and/or embedded DisplayPort (eDP) standardsand that are capable of reporting touch data.

The phrase “touch source” or “touch source device” are used synonymouslywith the term “source” and the phrase “source device” and are used torefer to a source device as defined in DP 1.1 standard that isconfigured to process touch data received, for example, from the touchsink device.

While the various devices, systems, and processes described herein areexplained in the context of DP and/or eDP, the present disclosure is notlimited to any particular touch and/or displays, interface standards, orspecifications.

While the various systems, devices, and processes described herein areexplained in the context of touch data, the present disclosure is notlimited to touch data and/or touch devices. Hence, because informationpassed between a touch sink and a touch source may be HID compliant, atouch sink may present other types of HID devices, including, but notlimited to, a keypad, an alpha numeric display, and so forth. Thus, thevarious interface schemes and/or processes described herein may beapplied to other types of HID devices that may be presented by a touchsink, and may apply to any combination of one or more types of HIDdevices with HID touch devices.

Further, while the term “interface data” may be used herein to referlargely to touch data, in various implementations, the interface data,in accordance with the present disclosure, may refer to data generatedby any type of HID device, such as a keypad, an alpha numeric display,and the like.

A touch sink may include touch sensors to generate raw touch data and aformatter to convert raw touch data into formats described herein.Further, a touch sink may be configured to transfer touch data to atouch source. A touch source may have the ability to receive or obtaintouch data from a touch sink, in addition to being configured to parseand/or interpret the touch data as described herein.

For example, FIG. 1 describes a multi-touch display interface system100, according to one embodiment, including a touch source 102communicatively coupled to a touch sink 104.

The touch source 102 may be configured to implement the DP 1.2 standardand may include a microprocessor, such as a graphics processing unit, adigital signal processor, or other devices configured to parse andinterpret interface data, such as touch data, using a parser module 106and an interpreter module 108, respectively. A touch source 102 may alsoinclude interface logic 109 to implement processes described hereinsubsequently. For example, the interface logic 109 may include logic toimplement data transfer processes or portions thereof, described in moredetail hereinafter.

The touch sink 104 may include a multi-touch capable display (not shown)to capture interface data in the form of multi-touch data and to formatthe touch data using touch sensors 110 and formatter module 112,respectively. The touch sensors 110 may be any type of touch sensors,such as capacitive type sensors, enabling touch sink 104 to capturemulti-touch data. The touch sink 104 may also include interface logic123 to implement processes described herein subsequently. For example,the interface logic 123 may include logic to implement data transferprocesses, described in more detail hereinafter.

The touch sink 104 may be incorporated into a mobile communicationdevice, such as a smart phone, mobile computer, tablet computer, or thelike. The components of the system 100 may be implemented within asingle device, such as a mobile communications device, a tabletcomputer, or other computing devices where the touch sink 104 maycorrespond to one or more logic and/or hardware modules associated witha touch screen display and touch source 102 may include a microprocessorcommunicatively coupled to the logic and/or hardware modules of touchsink 104.

As shown in FIG. 1, the system 100 includes a DP link 114,communicatively coupling touch sensor 102 to touch sink 104 andincluding a main link 116, an auxiliary or fast-auxiliary channel((F)AUX) 118 and a hot plug detect (HPD) signal line 120. In variousimplementations, main link 116 may be a unidirectional, high bandwidth,and low latency channel used for the transport of isochronous streams,such as uncompressed video and/or audio data from touch source 102 totouch sink 104. A channel 118 may be a half-duplex bidirectional channelused for link management and device control using schemes in accordancewith the present disclosure. For example, in various implementations,touch source 102 and touch sink 104 may be designated as master andslave, respectively. In general, transactions over the fast-auxiliarychannel 118 are implemented by touch source 102. However, in otherimplementations, touch sink 104 may prompt the initiation offast-auxiliary channel transactions by, for example, sending aninterrupt (IRQ) to touch source 102 over signal line 120.

The multi-touch display interface systems and/or schemes may include oneor more intervening devices and/or systems communicatively coupling atouch sink with a touch source. For example, FIG. 2 illustrates amulti-touch display interface system 200, according to one embodiment,including an intervening branch device 202, communicatively couplingtouch source device 102 to touch sink 104. In various implementations, abranch device 202 may be a device configured in accordance with the DP1.2 standard and may implement side band messages, as describedsubsequently. Further, in some embodiments, a branch device may processdownstream signals, such as interrupts appearing on the HPD signal line,within specific time limits based on the rate at which touch sink 104generates touch data. For example, branch device 202 may need to processinterrupts within 20 milliseconds to support a minimum touch data samplerate of 50 Hertz.

Returning to FIG. 1, touch source 102 may obtain interface data, such astouch data, from touch sink 104 over a fast-auxiliary channel 118, wherethe touch data may be in a human interface device (HID) format, asdefined by an HID descriptor report (see, Device Class Definition forHuman Interface Devices, (HID) firmware specification, version 1.11,published Jun. 27, 2001, hereinafter, the HID 1.1 specification).Further, a touch sink 104 may conform to touch-related formatrequirements as set forth in the multi-touch extensions for digitizers(see, “Addition of Usages Related to Multi-Touch Digitizers”, request #HUTRR34, published Feb. 27, 2009, hereinafter the HUTRR34 document thatmodified the HID usage tables (see, “HID Usage Tables,” version 1.12,published Oct. 28, 2004)). In addition, touch sink 104 may expose touchcapability as a digitizer device, in accordance with the HID 1.11specification. The HID information, including HID report descriptors,may be conveyed between touch sink 104 and touch source 102 over thefast-auxiliary channel 118.

The touch sink 104 may include registers 122 to temporarily store data,such as configuration data, touch data, and other data that may beaccessed by touch source 102 via the fast-auxiliary channel 118. Theregisters 122 may include DP configuration data (DPCD) registers andtouch source may have read and write access to those DPCD registers. Adata module 124, including sensors 110 and formatter module 112, may beconfigured in response to one or more DPCD register or registers 122.

The touch sink 104 may support a sample rate of at least 50 Hertz fortouch data. Touch sink 104 may convey touch data related interrupts to atouch source 102 and touch source 102 may process those interrupts at arate commensurate with the sample rate of the touch sink 104. Forexample, the touch sink 104 may convey IRQ_HPD interrupts to touchsource 102 via a signal line 120. While the DP 1.2 standard requiressource devices to process an IRQ_HPD within 100 milliseconds, in variousimplementations, a touch source 102 may process an IRQ_HPD within 20milliseconds to support processing of touch data sampled at a rate of 50Hertz by a touch sink 104.

In addition, a touch sink may also support touch based keyboard 126,touch based mouse 128, an embedded keyboard 130, or an embedded mouse132 (these four functions collectively referred to as KBM). When theyare supported, the touch sink may conform to a corresponding formatrequirement set forth in the HID specifications.

A touch sink device may announce its capability through a touchcapability DPCD register. Within that register, the sink a set aTOUCH_SUPPORTED bit if a touch capability is supported and setsEKBM_SUPPORTED bit if embedded keyboard or embedded mouse functions aresupported. Bit 1 of Touch Field TOUCH_CAPABILITY having DisplayPortAddress of 60006h can be used to store EKBM_SUPPORTED. In some cases,EKBM_SUPPORTED=1 can mean sink supports embedded keyboard and/or mouse,whereas EKBM_SUPPORTED=0 can mean sink does not support embeddedfunctions. A touch source may read this DPCD register as part of a sinkcapability discovery triggered by sink discovery.

Touch sink devices may make an HID descriptor and an HID reportdescriptor available using formatting described in the HIDspecifications. These two descriptors are accessible fromHID_CLASS_DESCRIPTORS DPCD registers respectively. A touch source readsthese descriptors after determining touch capability in the hot pluggedsink device.

The class descriptors declare and the HID descriptor may immediatelyfollow the HID descriptor and the HID_DESCRIPTORS_DPCD registers in theorder in which they were declared in the HID descriptor.

By default, a touch sink may have the touch function enabled andembedded KBM functions disabled.

A touch source can configure a touch sink in the following ways in oneembodiment.

Configuration Bit Description ENABLE_TOUCH Enable or disable touchfeature in the sink device DATA_ACCESS_METHOD Configure sink device forinterrupt generation RESET Reset touch functionality (hardware/firmware)in the Sink device GET_FEATURE_REPORT Get the feature report for thespecified Report ID SET_FEATURE_REPORT Drive a Feature Report out to thetouch sink SET_OUTPUT_REPORT Drive an Output Report to the touch sinkSET_IDLE_RATE Configure rate at which Input Reports are generated in thesink device SET_LOW_POWER Put the touch feature in the sink to low powerstate EKBM_ENABLE Enables the embedded keyboard and/or mouse functions.A touch sink acknowledges success or failure to the following commandsthrough standard DPCD AUX transaction mechanisms defined in theDisplayPort 1.2 standard.

A touch source disables the touch feature in the touch sink by settingthe ENABLE_TOUCH bit in the CONFIGURE_TOUCH DPCD register to zero.Similarly it may enable the touch feature by writing a one to that bit.

A touch source may disable touch related IRQ_HPD interrupt generationfrom the touch sink by setting the DATA_ACCESS_METHOD bit in theCONFIGURE_TOUCH DPCD register to polled. Similarly it enables IRQ_HPDinterrupt generation by setting the bit to interrupt.

A touch source may reset touch functionality in the touch sink bysetting the reset bit in the CONFIGURE_TOUCH DPCD register to one. Thetouch sink brings touch related hardware and firmware to reset conditionin response to this command. In particular, this reset conditiondisables touch sensing in the sink, flushes the input report queue andresets the TOUCH_STATUS register to indicate no report data availableeither from source or from sink.

A touch source issues a read request for a feature report by writing thereport identifier of interest to TOUCH_PARAMETERS [0] DPCD register andby setting the GET_FEATURE_REPORT bit in the CONFIGURE_TOUCH DPCDregister to one. The touch sink indicates availability of a featurereport to be read in REPORT_DATA DPCD region at offset zero.

A touch source issues a feature report by doing both the following. Itwrites the size of the feature report to the feature report size area inthe REPORT_DATA DPCD region and the feature report itself to the featurereport area. It also issues a report by setting the SET_FEATURE_REPORTbit in the CONFIGURE_TOUCH DPCD register to one.

A touch source may issue an output report by writing the size of theoutput report to the output report size area and the OUTPUT_REPORT DPCDregion and the output report itself to the output report area and bysetting the SET_OUTPUT_REPORT bit in the CONFIGURE_TOUCH DPCD registerto one.

A touch source sets the reporting rate for input reports by writing theparameters for this command in the IDLE_RATES DPCD region and by settingthe SET_IDLE_RATE bit in the CONFIGURE_TOUCH DPCD register.

A touch source sets the touch component in the sink to sleep state bysetting the SET_LOW_POWER bit in the CONFIGURE_TOUCH DPCD register toone. When SET_LOW_POWER is zero, the touch feature may be in an onstate. This bit is valid only when the sink is in the active state.

A touch source gets the EKBM_ENABLE bit in the CONFIGURE_HID register toenable embedded keyboard and/or mouse functions in the touch sink.

The HID_CLASS_DESCRIPTORS DPCD registers contain an array of HID classdescriptors, where the first descriptor is an HID descriptor. The HIDdescriptor identifies the revision of the HID specification that itsupports, and any other information specific to the HID device.

The bNumDescriptors field of the HID descriptor defines the number ofadditional HID class descriptors available.

The bNumDescriptors field is followed by an array of three byte entries,where the first byte of an entry defines the type of the HID classdescriptor and remaining two bytes of an entry to define the size of theHID class descriptor.

The input, output and feature reports may be available over eDP. Thetouch sources can originate output and feature reports and touch sinkscan originate input and feature reports.

A touch sink stores the input report and when applicable feature reportin REPORT_DATA DPCD registers.

The report descriptor identifies the size of each feature report definedby a device. If more than one feature report is declared in the reportdescriptor, then they are distinguished by the report identifierinserted as the first byte of each report.

A touch sink populates the feature report area with the feature reportidentified by the report ID specified by the touch source andTOUCH_PARAMETERS[0]. The feature report size field identifies the numberof valid bytes in the feature report area for the requested featurereport.

A touch source can generate output reports and feature reports. A touchsource stores when applicable the output report in the OUTPUT_REPORTDPCD region. The report descriptor defines the maximum size of theoutput reports subregion. The size of an output report may vary based onthe content that a touch source wants to drive.

If a report descriptor uses report identifiers to identify multiplereports of a specific type (e.g. feature, input or output), then a sizeof the report subregion may be the union of the size of all reportsdefined of the same type. Software on the touch source may determine themaximum size of each report by parsing the report descriptor and thenumber of valid bytes in the current report by examining the size fieldpreceding the report's subregion.

A touch sink may transfer touch data either over the AUX channel asindicated in FIG. 2-1. A sequence of events is as follows in oneembodiment. A touch source configures a touch sink to generateinterrupts through DATA_ACCESS_METHOD bit in the CONFIGURE_TOUCH DPCDregister. The touch sink is configured to enable touch feature in thesink by setting ENABLE_TOUCH bit in the CONFIGURE_TOUCH DPCD register.These two operations can be combined into one single AUX write.

When needed, the touch source requests a feature report for a particularreport identifier by setting TOUCH_PARAMETERS[0] to the desired reportidentifier and by setting GET_FEATURE_REPORT bit in TOUCH_COMMAND_DPCDregister.

On availability of each instance of fresh touch data, the touch enabledsink may do the following. If INPUT_REPORT_AVAILABLE bit in theTOUCH_STATUS DPCD register, and the TOUCH_INTERRUPT bit are clear, thenit populates the touch data in the import region in the REPORT_DATA. Italso sets the reason for the interrupt. It sets INPUT_REPORT_AVAILABLEand sets the TOUCH_INTERRUPT bit in the DEVICE_SERVICE_IRQ_VECTOR. Italso asserts IRQ_HPD.

On detection of GET_FEATURE_REPORT equal one, the TOUCH_SINK reads thereport identifier from TOUCH_PARAMETERS [0]. If theFEATURE_REPORT_AVAILABLE bit in the TOUCH_STATUS DPCD register and theTOUCH_INTERRUPT bit are clear then it populates the feature report forthe desired report identifier at REPORT_DATA [0] and it sets the reasonfor interrupt. It sets the FEATURE_REPORT_AVAILABLE and sets theTOUCH_INTERRUPT bit in the DEVICE_SERVICE_IRQ_VECTOR and assertsIRQ_HPD.

On IRQ_HPD, the touch source reads DEVICE_SERVICE_IRQ_VECTOR to check ifTOUCH_INTERRUPT bit is set. If so, it reads the TOUCH_STATUS DPCDregister to determine if either INPUT_REPORT_AVAILABLE orFEATURE_REPORT_AVAILABLE bits are set. If not, the interrupt serviceroutine exits from the touch input processing. If so, it also reads thedata input or feature report corresponding to the available indication.It also clears the interrupt reason.

For a polled source access to input or feature report, the sequence ofevents is as follows in one embodiment. The touch source configures atouch sink to not generate IRQ_HPD interrupts by settingDATA_ACCESS_METHOD bit to polled in the CONFIGURE_TOUCH DPCD registerand enables touch features in the sink by setting ENABLE_TOUCH bit inthe CONFIGURE_TOUCH DPCD register. These two operations can be combinedinto a single AUX write.

When needed, the touch source requests a feature report for a particularreport identifier by setting TOUCH_PARAMETERS [0] to the desired reportidentifier and by setting GET_FEATURE_REPORT bit in TOUCH_COMMAND DPCDregister. The input source polls the availability flags corresponding tothe reports until they are set. The touch sink populates the inputreport and/or feature report into TOUCH_DATA region. It sets thecorresponding availability bits in TOUCH_STATUS but does not setTOUCH_INTERRUPT bit and does not raise an IRQ_HPD. Once the touch sourcedetermines that one or both input availability flags is/are set, itreads the corresponding reports from REPORT_DATA DPCD registers andclears the availability flag or flags that was or were found set.

A touch source can disable interrupts to minimize latency associatedwith interrupt notifications in some embodiments. System software on atouch source needs to handle the switch between interrupt based dataaccess and polled data access carefully to minimize risk of losing data.

Once the touch source enables interrupt access method, a touch sink mayimmediately generate an interrupt if its previously generated inputand/or feature report(s) are already available. Similarly if a touchsink is waiting for TOUCH_INTERRUPT bit to be cleared in order topopulate input and/or output feature report(s), it may abort that waitif the touch source disables interrupt access method.

The sequence of events in a sink access to an output report are asfollows in one embodiment. The touch source configures a touch sink toenable either an interrupt or polled access and enables touch in a sinkby setting ENABLE_TOUCH bit in the CONFIGURE_TOUCH DPCD register.

On availability of data to be communicated to the sink, the touch sourcefirst determines completion of a previous output report by waiting forSET_OUTPUT_REPORT to be zero. In the case of polled access, it pollsOUTPUT_REPORT_READ bit to be set in the TOUCH_STATUS_DPCD register. Inthe case of interrupt access, the touch source fields an IRQ_HPD withTOUCH_INTERRUPT bit and OUTPUT_REPORT_READ bit set. Secondly, oncompletion of the previous step, the touch source writes the outputreport to its corresponding location in OUTPUT_REPORT_DPCD region,clears the OUTPUT_REPORT_READ bit, sets the SET_OUTPUT_REPORT bit in theCONFIGURE_TOUCH DPCD register and in the case of interrupt access,clears TOUCH_INTERRUPT bit.

When firmware on a touch sink detects a SET_OUTPUT_REPORT bit is one, itmay read the output report, set the OUTPUT_REPORT_READ bit, in the caseof interrupt access, wait for the TOUCH_INTERRUPT bit to be cleared andset it and clear SET_OUTPUT_REPORT bit.

To enable a sink to access feature report, the sequences of events arevery similar to accessing an output report. The following changes may beimplemented in some embodiments. A touch source may set and a touch sinkmay clear the SET_FEATURE_REPORT bit rather than the SET_OUTPUT_REPORTbit in the CONFIGURE_TOUCH DPCD register. Another change is that readand write rates may be controlled using FEATURE_REPORT_READ bit ratherthan OUTPUT_REPORT_READ bit. Also, the FEATURE_REPORT may be madeavailable in the REPORT_DATA DPCD region at offset zero. In addition,the report identifier for which the feature report is being set iscommunicated in the TOUCH_PARAMETERS[0] DPCD register.

The concurrency of touch with keyboard may be handled as follows in oneembodiment. If a sink defines a keyboard application collection in thesame report descriptor as a digitizer device, then a touch keyboard isdefined as follows. Firstly, a vendor may provide a vendor specificmethod to allow a user to enable or disable the display of a soft touchkeyboard on the screen or may have an embedded keyboard leaving theentire screen available for touch. Secondly, when a touch keyboard orthe embedded keyboard interprets keystrokes, the keystrokes aretransmitted to the source using the keyboard interface. Thirdly, if atouch keyboard does not cover the whole screen, then touches over thetouch keyboard may be interpreted as keystroke and may be transmittedover the keyboard interface. Single or multiple touches over theremaining area may be transmitted over the surface interface. Fourthly,multi-touches reported by the touch interface may not include anytouches over the touch keyboard.

Concurrency of touch with mouse may be handled as follows in someembodiments. A sink defines a mouse application collection in the samereport descriptor as a digitizer device. The digitizer functionality maybe referred to as a touch screen. The mouse functionality may be eithertouch based or it may be an embedded mouse. When an embedded mouse isnot present, the touch screen defines a device mode [3] usage, where thedefault value is zero—report as a mouse. The device mode may bechangeable dynamically through set feature requests from the source. Atouch screen without embedded mouse may start reporting as a mouse whendevice mode is zero. A touch mouse may interpret single touches asabsolute mouse position on the screen and may transmit to the sourceusing HID mouse reports. The touch mouse may not generate any reportswhen multi-touch input is detected. A touch screen does not generatereports in some embodiments. A touch screen without embedded mousestarts reporting as a single input device when the device mode is one. Atouch screen generates reports when single touch input is detected. Thetouch screen does not generate any reports from multi-touch input isdetected and the touch mouse does not generate any reports. A touchscreen without embedded mouse starts reporting as a multiple inputdevice when the device mode is two. The touch screen generates reportswhen single or multi-touch input is detected and they may be transmittedto the source with contact count indicated in a number of valid touches.A touch mouse does not generate any reports. A device with touch screenand embedded mouse may generate touch reports on single or multipletouches on the touch screen and generates HID mouse reports frommovements with the embedded mouse. Device mode is not used in thisscenario.

Concurrency of touch with keyboard and mouse is handled as follows insome embodiments. A sink defines mouse and keyboard applicationcollections in the same report descriptor as a digitizer device. Whenthe keyboard and mouse are embedded device, all three functions areavailable concurrently. When one of the keyboard or the mouse functionsis embedded and the other is touch based, the embedded function isavailable concurrently with the touch and the other function that istouch based. When both keyboard and mouse are touch based, the devicesupports device mode usage that defaults to mouse (device mode equals tozero). In this mode touch and keyboard functions are not supported insome embodiments. In device mode 1, the device reports as a single inputdevice transmitting either keyboard reports or touch HID reportsdepending on location of the touch being keyboard area or touch screenarea respectively. When in device mode 2, the device reports as amultiple input device transmitting keyboard and/or touch HID reportsdepending on the location of the touch.

A sink may not have more than one instance of touch-based or embeddedkeyboard or mouse functionality in some embodiments.

In accordance with some embodiments a sequence may be implemented insoftware, firmware and/or hardware. In software and firmware embodimentsit may be implemented by computer executed instructions stored in one ormore non-transitory computer readable media such as magnetic, optical orsemiconductor storages. For example, such firmware or software may bestored in such a device within the touch sink shown in FIG. 1 andparticularly, the data module 124.

The sequence shown in FIG. 3 may begin by providing keyboard and mousediscovery as indicated in block 300. Then actuation of keyboard andmouse functions may be selectively enabled (block 302). In other words,any one or more of touch plus keyboard or touch plus mouse functions ortouch plus keyboard and mouse functions may be provided including touchkeyboard, touch mouse, embedded keyboard and/or embedded mouse.

Then as shown in block 304, concurrency may be selectively enabled fortouch plus keyboard, touch plus mouse, or touch plus keyboard and mouse.

FIG. 4 illustrates an embodiment of a system 700. In embodiments, system700 may be a media system although system 700 is not limited to thiscontext. For example, system 700 may be incorporated into a personalcomputer (PC), laptop computer, ultra-laptop computer, tablet, touchpad, portable computer, handheld computer, palmtop computer, personaldigital assistant (PDA), cellular telephone, combination cellulartelephone/PDA, television, smart device (e.g., smart phone, smart tabletor smart television), mobile internet device (MID), messaging device,data communication device, and so forth.

In embodiments, system 700 comprises a platform 702 coupled to a display720. Platform 702 may receive content from a content device such ascontent services device(s) 730 or content delivery device(s) 740 orother similar content sources. A navigation controller 750 comprisingone or more navigation features may be used to interact with, forexample, platform 702 and/or display 720. Each of these components isdescribed in more detail below.

In embodiments, platform 702 may comprise any combination of a chipset705, processor 710, memory 712, storage 714, graphics subsystem 715,applications 716 and/or radio 718. Chipset 705 may provideintercommunication among processor 710, memory 712, storage 714,graphics subsystem 715, applications 716 and/or radio 718. For example,chipset 705 may include a storage adapter (not depicted) capable ofproviding intercommunication with storage 714.

Processor 710 may be implemented as Complex Instruction Set Computer(CISC) or Reduced Instruction Set Computer (RISC) processors, x86instruction set compatible processors, multi-core, or any othermicroprocessor or central processing unit (CPU). In embodiments,processor 710 may comprise dual-core processor(s), dual-core mobileprocessor(s), and so forth. The processor may implement the sequence ofFIG. 3 together with memory 712.

Memory 712 may be implemented as a volatile memory device such as, butnot limited to, a Random Access Memory (RAM), Dynamic Random AccessMemory (DRAM), or Static RAM (SRAM).

Storage 714 may be implemented as a non-volatile storage device such as,but not limited to, a magnetic disk drive, optical disk drive, tapedrive, an internal storage device, an attached storage device, flashmemory, battery backed-up SDRAM (synchronous DRAM), and/or a networkaccessible storage device. In embodiments, storage 714 may comprisetechnology to increase the storage performance enhanced protection forvaluable digital media when multiple hard drives are included, forexample.

Graphics subsystem 715 may perform processing of images such as still orvideo for display. Graphics subsystem 715 may be a graphics processingunit (GPU) or a visual processing unit (VPU), for example. An analog ordigital interface may be used to communicatively couple graphicssubsystem 715 and display 720. For example, the interface may be any ofa High-Definition Multimedia Interface, DisplayPort, wireless HDMI,and/or wireless HD compliant techniques. Graphics subsystem 715 could beintegrated into processor 710 or chipset 705. Graphics subsystem 715could be a stand-alone card communicatively coupled to chipset 705.

The graphics and/or video processing techniques described herein may beimplemented in various hardware architectures. For example, graphicsand/or video functionality may be integrated within a chipset.Alternatively, a discrete graphics and/or video processor may be used.As still another embodiment, the graphics and/or video functions may beimplemented by a general purpose processor, including a multi-coreprocessor. In a further embodiment, the functions may be implemented ina consumer electronics device.

Radio 718 may include one or more radios capable of transmitting andreceiving signals using various suitable wireless communicationstechniques. Such techniques may involve communications across one ormore wireless networks. Exemplary wireless networks include (but are notlimited to) wireless local area networks (WLANs), wireless personal areanetworks (WPANs), wireless metropolitan area network (WMANs), cellularnetworks, and satellite networks. In communicating across such networks,radio 718 may operate in accordance with one or more applicablestandards in any version.

In embodiments, display 720 may comprise any television type monitor ordisplay. Display 720 may comprise, for example, a computer displayscreen, touch screen display, video monitor, television-like device,and/or a television. Display 720 may be digital and/or analog. Inembodiments, display 720 may be a holographic display. Also, display 720may be a transparent surface that may receive a visual projection. Suchprojections may convey various forms of information, images, and/orobjects. For example, such projections may be a visual overlay for amobile augmented reality (MAR) application. Under the control of one ormore software applications 716, platform 702 may display user interface722 on display 720.

In embodiments, content services device(s) 730 may be hosted by anynational, international and/or independent service and thus accessibleto platform 702 via the Internet, for example. Content servicesdevice(s) 730 may be coupled to platform 702 and/or to display 720.Platform 702 and/or content services device(s) 730 may be coupled to anetwork 760 to communicate (e.g., send and/or receive) media informationto and from network 760. Content delivery device(s) 740 also may becoupled to platform 702 and/or to display 720.

In embodiments, content services device(s) 730 may comprise a cabletelevision box, personal computer, network, telephone, Internet enableddevices or appliance capable of delivering digital information and/orcontent, and any other similar device capable of unidirectionally orbidirectionally communicating content between content providers andplatform 702 and/display 720, via network 760 or directly. It will beappreciated that the content may be communicated unidirectionally and/orbidirectionally to and from any one of the components in system 700 anda content provider via network 760. Examples of content may include anymedia information including, for example, video, music, medical andgaming information, and so forth.

Content services device(s) 730 receives content such as cable televisionprogramming including media information, digital information, and/orother content. Examples of content providers may include any cable orsatellite television or radio or Internet content providers. Theprovided examples are not meant to limit embodiments of the invention.

In embodiments, platform 702 may receive control signals from navigationcontroller 750 having one or more navigation features. The navigationfeatures of controller 750 may be used to interact with user interface722, for example. In embodiments, navigation controller 750 may be apointing device that may be a computer hardware component (specificallyhuman interface device) that allows a user to input spatial (e.g.,continuous and multi-dimensional) data into a computer. Many systemssuch as graphical user interfaces (GUI), and televisions and monitorsallow the user to control and provide data to the computer or televisionusing physical gestures.

Movements of the navigation features of controller 750 may be echoed ona display (e.g., display 720) by movements of a pointer, cursor, focusring, or other visual indicators displayed on the display. For example,under the control of software applications 716, the navigation featureslocated on navigation controller 750 may be mapped to virtual navigationfeatures displayed on user interface 722, for example. In embodiments,controller 750 may not be a separate component but integrated intoplatform 702 and/or display 720. Embodiments, however, are not limitedto the elements or in the context shown or described herein.

In embodiments, drivers (not shown) may comprise technology to enableusers to instantly turn on and off platform 702 like a television withthe touch of a button after initial boot-up, when enabled, for example.Program logic may allow platform 702 to stream content to media adaptorsor other content services device(s) 730 or content delivery device(s)740 when the platform is turned “off.” In addition, chip set 705 maycomprise hardware and/or software support for 5.1 surround sound audioand/or high definition 7.1 surround sound audio, for example. Driversmay include a graphics driver for integrated graphics platforms. Inembodiments, the graphics driver may comprise a peripheral componentinterconnect (PCI) Express graphics card.

In various embodiments, any one or more of the components shown insystem 700 may be integrated. For example, platform 702 and contentservices device(s) 730 may be integrated, or platform 702 and contentdelivery device(s) 740 may be integrated, or platform 702, contentservices device(s) 730, and content delivery device(s) 740 may beintegrated, for example. In various embodiments, platform 702 anddisplay 720 may be an integrated unit. Display 720 and content servicedevice(s) 730 may be integrated, or display 720 and content deliverydevice(s) 740 may be integrated, for example. These examples are notmeant to limit the invention.

In various embodiments, system 700 may be implemented as a wirelesssystem, a wired system, or a combination of both. When implemented as awireless system, system 700 may include components and interfacessuitable for communicating over a wireless shared media, such as one ormore antennas, transmitters, receivers, transceivers, amplifiers,filters, control logic, and so forth. An example of wireless sharedmedia may include portions of a wireless spectrum, such as the RFspectrum and so forth. When implemented as a wired system, system 700may include components and interfaces suitable for communicating overwired communications media, such as input/output (I/O) adapters,physical connectors to connect the I/O adapter with a correspondingwired communications medium, a network interface card (NIC), disccontroller, video controller, audio controller, and so forth. Examplesof wired communications media may include a wire, cable, metal leads,printed circuit board (PCB), backplane, switch fabric, semiconductormaterial, twisted-pair wire, co-axial cable, fiber optics, and so forth.

Platform 702 may establish one or more logical or physical channels tocommunicate information. The information may include media informationand control information. Media information may refer to any datarepresenting content meant for a user. Examples of content may include,for example, data from a voice conversation, videoconference, streamingvideo, electronic mail (“email”) message, voice mail message,alphanumeric symbols, graphics, image, video, text and so forth. Datafrom a voice conversation may be, for example, speech information,silence periods, background noise, comfort noise, tones and so forth.Control information may refer to any data representing commands,instructions or control words meant for an automated system. Forexample, control information may be used to route media informationthrough a system, or instruct a node to process the media information ina predetermined manner. The embodiments, however, are not limited to theelements or in the context shown or described in FIG. 4.

As described above, system 700 may be embodied in varying physicalstyles or form factors. FIG. 5 illustrates embodiments of a small formfactor device 800 in which system 700 may be embodied. In embodiments,for example, device 800 may be implemented as a mobile computing devicehaving wireless capabilities. A mobile computing device may refer to anydevice having a processing system and a mobile power source or supply,such as one or more batteries, for example.

As described above, examples of a mobile computing device may include apersonal computer (PC), laptop computer, ultra-laptop computer, tablet,touch pad, portable computer, handheld computer, palmtop computer,personal digital assistant (PDA), cellular telephone, combinationcellular telephone/PDA, television, smart device (e.g., smart phone,smart tablet or smart television), mobile internet device (MID),messaging device, data communication device, and so forth.

Examples of a mobile computing device also may include computers thatare arranged to be worn by a person, such as a wrist computer, fingercomputer, ring computer, eyeglass computer, belt-clip computer, arm-bandcomputer, shoe computers, clothing computers, and other wearablecomputers. In embodiments, for example, a mobile computing device may beimplemented as a smart phone capable of executing computer applications,as well as voice communications and/or data communications. Althoughsome embodiments may be described with a mobile computing deviceimplemented as a smart phone by way of example, it may be appreciatedthat other embodiments may be implemented using other wireless mobilecomputing devices as well. The embodiments are not limited in thiscontext.

The processor 710 may communicate with a camera 722 and a globalpositioning system sensor 720, in some embodiments. A memory 712,coupled to the processor 710, may store computer readable instructionsfor implementing the sequences shown in FIG. 2 in software and/orfirmware embodiments.

As shown in FIG. 5, device 800 may comprise a housing 802, a display804, an input/output (I/O) device 806, and an antenna 808. Device 800also may comprise navigation features 812. Display 804 may comprise anysuitable display unit for displaying information appropriate for amobile computing device. I/O device 806 may comprise any suitable I/Odevice for entering information into a mobile computing device. Examplesfor I/O device 806 may include an alphanumeric keyboard, a numerickeypad, a touch pad, input keys, buttons, switches, rocker switches,microphones, speakers, voice recognition device and software, and soforth. Information also may be entered into device 800 by way ofmicrophone. Such information may be digitized by a voice recognitiondevice. The embodiments are not limited in this context.

Various embodiments may be implemented using hardware elements, softwareelements, or a combination of both. Examples of hardware elements mayinclude processors, microprocessors, circuits, circuit elements (e.g.,transistors, resistors, capacitors, inductors, and so forth), integratedcircuits, application specific integrated circuits (ASIC), programmablelogic devices (PLD), digital signal processors (DSP), field programmablegate array (FPGA), logic gates, registers, semiconductor device, chips,microchips, chip sets, and so forth. Examples of software may includesoftware components, programs, applications, computer programs,application programs, system programs, machine programs, operatingsystem software, middleware, firmware, software modules, routines,subroutines, functions, methods, procedures, software interfaces,application program interfaces (API), instruction sets, computing code,computer code, code segments, computer code segments, words, values,symbols, or any combination thereof. Determining whether an embodimentis implemented using hardware elements and/or software elements may varyin accordance with any number of factors, such as desired computationalrate, power levels, heat tolerances, processing cycle budget, input datarates, output data rates, memory resources, data bus speeds and otherdesign or performance constraints.

The graphics processing techniques described herein may be implementedin various hardware architectures. For example, graphics functionalitymay be integrated within a chipset. Alternatively, a discrete graphicsprocessor may be used. As still another embodiment, the graphicsfunctions may be implemented by a general purpose processor, including amulticore processor.

The following clauses and/or examples pertain to further embodiments:

One example embodiment may be a method comprising selectively enabling ahuman interface sink device with at least one of an embedded keyboard,embedded mouse, touch-based keyboard, a touch-based mouse function inaddition to a multi-touch function. The method may also includeproviding a capability discovery mechanism to enable discovery ofkeyboard and/or mouse functions of the sink device in addition to amulti-touch function. The method may also include enabling concurrenttouch and keyboard functions in the sink device. The method may alsoinclude enabling concurrent touch and mouse functions in the sinkdevice. The method may also include enabling concurrent touch, keyboardand mouse functions in the sink device.

In another example embodiment may be one or more transitory computerreadable media storing instructions that cause a processor toselectively enable a human interface sink device with at least one of anembedded keyboard, embedded mouse, touch-based keyboard, a touch-basedmouse function in addition to a multi-touch function. The media mayfurther store instructions to provide a capability discovery mechanismto enable discovery of keyboard and/or mouse functions of the sinkdevice in addition to a multi-touch function. The media may furtherstore instructions to enable concurrent touch and keyboard functions inthe sink device. The media may further store instructions to enableconcurrent touch and mouse functions in the sink device. The media mayfurther store instructions to enable concurrent touch, keyboard andmouse functions in the sink device.

Another example embodiment may be a human interface sink devicecomprising a plurality of touch sensors and interface logic toselectively enable the human interface sink device with at least one ofan embedded keyboard, embedded mouse, touch-based keyboard, atouch-based mouse function in addition to a multi-touch function. Thedevice may include said interface logic to provide a capabilitydiscovery mechanism to enable discovery of keyboard and/or mousefunctions of the sink device in addition to a multi-touch function. Thedevice may include said interface logic to enable concurrent touch andkeyboard functions in the sink device. The device may include saidinterface logic to enable concurrent touch and mouse functions in thesink device. The device may include said interface logic to enableconcurrent touch, keyboard and mouse functions in the sink device.

In another example embodiment may be a human interface sink devicecomprising a touch keyboard and hardware to selectively enable amulti-touch function and concurrent touch and keyboard, touch and mouse,or touch, mouse and keyboard functions. The device may include saidinterface to enable concurrent touch and mouse functions in the sinkdevice. The device may include said interface to enable concurrenttouch, keyboard and mouse functions in the sink device. The device mayinclude an operating system, a battery and firmware and a module toupdate said firmware.

References throughout this specification to “one embodiment” or “anembodiment” mean that a particular feature, structure, or characteristicdescribed in connection with the embodiment is included in at least oneimplementation encompassed within the claims. Thus, appearances of thephrase “one embodiment” or “in an embodiment” are not necessarilyreferring to the same embodiment. Furthermore, the particular features,structures, or characteristics may be instituted in other suitable formsother than the particular embodiment illustrated and all such forms maybe encompassed within the claims of the present application.

While a limited number of embodiments have been discussed, those skilledin the art will appreciate numerous modifications and variationstherefrom. It is intended that the appended claims cover all suchmodifications and variations as fall within the true spirit and scope ofthe claims.

What is claimed is:
 1. A method comprising: selectively enabling a humaninterface sink device with at least one of an embedded keyboard,embedded mouse, touch-based keyboard, a touch-based mouse function inaddition to a multi-touch function.
 2. The method of claim 1 includingproviding a capability discovery mechanism to enable discovery ofkeyboard and/or mouse functions of the sink device in addition to amulti-touch function.
 3. The method of claim 1 including enablingconcurrent touch and keyboard functions in the sink device.
 4. Themethod of claim 1 including enabling concurrent touch and mousefunctions in the sink device.
 5. The method of claim 1 includingenabling concurrent touch, keyboard and mouse functions in the sinkdevice.
 6. One or more non-transitory computer readable media storinginstructions that cause a processor to: selectively enable a humaninterface sink device with at least one of an embedded keyboard,embedded mouse, touch-based keyboard, a touch-based mouse function inaddition to a multi-touch function.
 7. The media of claim 6 furtherstoring instructions to provide a capability discovery mechanism toenable discovery of keyboard and/or mouse functions of the sink devicein addition to a multi-touch function.
 8. The media of claim 6 furtherstoring instructions to enable concurrent touch and keyboard functionsin the sink device.
 9. The media of claim 6 further storing instructionsto enable concurrent touch and mouse functions in the sink device. 10.The media of claim 6 further storing instructions to enable concurrenttouch, keyboard and mouse functions in the sink device.
 11. A humaninterface sink device comprising: a plurality of touch sensors; andinterface logic to selectively enable the human interface sink devicewith at least one of an embedded keyboard, embedded mouse, touch-basedkeyboard, a touch-based mouse function in addition to a multi-touchfunction.
 12. The device of claim 11 said interface logic to provide acapability discovery mechanism to enable discovery of keyboard and/ormouse functions of the sink device in addition to a multi-touchfunction.
 13. The device of claim 11 said interface logic to enableconcurrent touch and keyboard functions in the sink device.
 14. Thedevice of claim 11 said interface logic to enable concurrent touch andmouse functions in the sink device.
 15. The device of claim 11 saidinterface logic to enable concurrent touch, keyboard and mouse functionsin the sink device.
 16. A human interface sink device comprising: atouch keyboard; and hardware to selectively enable a multi-touchfunction and concurrent touch and keyboard, touch and mouse, or touch,mouse and keyboard functions.
 17. The device of claim 16 said interfaceto enable concurrent touch and keyboard functions in the sink device.18. The device of claim 16 said interface to enable concurrent touch andmouse functions in the sink device.
 19. The device of claim 16 saidinterface to enable concurrent touch, keyboard and mouse functions inthe sink device.
 20. The device of claim 16 including an operatingsystem.
 21. The device of claim 16 including a battery.
 22. The deviceof claim 16 including firmware and a module to update said firmware.